前面花了點時間介紹了 MVC,今天終於要進入正題啦!
我會以一個電玩專賣店的購物網站為主題,並且從後台的管理系統開始做起,內容大概會包含有商品、訂單和會員功能,大多都會圍繞在 CRUD 的應用上。
上次已經建立好一個基礎的商品模型,但實際上的商品不會只有名稱價錢而已,我們需要幫 Product 的模型多加幾個欄位,而且以商品類別加以分類,所以也一併把 Category 模型建好,以外鍵建立關聯。更改欄位如下:
public class Product
{
public int Id { get; set; }
public string Name { get; set; } //商品名稱
public string Description { get; set; } //商品簡介
public string Content { get; set; } //商品內容
public int Price { get; set; } //商品價格
public int Stock { get; set; } //商品庫存
public byte[] Image { get; set; } //商品圖片
public int CategoryId { get; set; } //類別 (Foreign Key)
public Category Category { get; set; }
}
public class Category
{
public int Id { get; set; }
public string Name { get; set; } //類別名稱
public List<Product> Products { get; set; }
}
之前都沒有特別提到資料庫在哪裡,MVC 專案預設的位置會是 LocalDB,我們可以到appsetting.json
看看連接字串是連接到哪一個資料庫
"ConnectionStrings": {
"OnlineShopContext": "Server=(localdb)\\mssqllocaldb;Database=OnlineShopContext-d32dd82d-bdd1-4cb2-9e42-046cc024dc49;Trusted_Connection=True;MultipleActiveResultSets=true"
}
但我們想要讓資料庫連接到 SQL Sever Express 上,好讓之後可以用管理工具看資料,那就必須取得 SQL Sever Express 的連接字串:
首先打開 Microsoft SQL Server Management Studio,用windows認證 連上 SQL Sever Express
在資料庫右鍵新增資料庫名為OnlineShop
之後回到Visual Studio [ 工具 -> 連接到資料庫 -> 把 Server name 打上 -> 選取資料庫OnlineShop
]
點選連接到的資料庫可以查詢到它的Connection String
複製Connection String到appsetting.json
貼上修改
"ConnectionStrings": {
"OnlineShopContext": "Data Source=DESKTOP-E22K0FS\\SQLEXPRESS;Initial Catalog=OnlineShop;Integrated Security=True"
}
最後再來移轉資料庫,在Package Manager Console 輸入以下命令:Add-Migration UpdateProducts
Update-Database
完成後回到SSMS來看
Product 和 Category 的資料表就成功建好了